using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("BigCard")]
	public class BigCard : MonoBehaviour
	{
		[Attribute38("BigCard.LayoutData")]
		public class LayoutData : MonoClass
		{
			public float m_ScaleSec => method_2<float>("m_ScaleSec");

			public float m_DriftSec => method_2<float>("m_DriftSec");

			public LayoutData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public LayoutData(IntPtr address)
				: this(address, "LayoutData")
			{
			}
		}

		[Attribute38("BigCard.SecretLayoutOffsets")]
		public class SecretLayoutOffsets : MonoClass
		{
			public Vector3 m_InitialOffset => method_2<Vector3>("m_InitialOffset");

			public Vector3 m_OpponentInitialOffset => method_2<Vector3>("m_OpponentInitialOffset");

			public Vector3 m_HiddenInitialOffset => method_2<Vector3>("m_HiddenInitialOffset");

			public Vector3 m_HiddenOpponentInitialOffset => method_2<Vector3>("m_HiddenOpponentInitialOffset");

			public SecretLayoutOffsets(IntPtr address, string className)
				: base(address, className)
			{
			}

			public SecretLayoutOffsets(IntPtr address)
				: this(address, "SecretLayoutOffsets")
			{
			}
		}

		[Attribute38("BigCard.SecretLayoutData")]
		public class SecretLayoutData : MonoClass
		{
			public float m_ShowAnimTime => method_2<float>("m_ShowAnimTime");

			public float m_HideAnimTime => method_2<float>("m_HideAnimTime");

			public float m_DeathShowAnimTime => method_2<float>("m_DeathShowAnimTime");

			public float m_TimeUntilDeathSpell => method_2<float>("m_TimeUntilDeathSpell");

			public float m_DriftSec => method_2<float>("m_DriftSec");

			public Vector3 m_DriftOffset => method_2<Vector3>("m_DriftOffset");

			public Vector3 m_Spacing => method_2<Vector3>("m_Spacing");

			public Vector3 m_HiddenSpacing => method_2<Vector3>("m_HiddenSpacing");

			public int m_MinCardThreshold => method_2<int>("m_MinCardThreshold");

			public int m_MaxCardThreshold => method_2<int>("m_MaxCardThreshold");

			public SecretLayoutOffsets m_MinCardOffsets => method_3<SecretLayoutOffsets>("m_MinCardOffsets");

			public SecretLayoutOffsets m_MaxCardOffsets => method_3<SecretLayoutOffsets>("m_MaxCardOffsets");

			public SecretLayoutData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public SecretLayoutData(IntPtr address)
				: this(address, "SecretLayoutData")
			{
			}
		}

		public struct KeywordArgs
		{
			public Card card;

			public Actor actor;

			public bool showOnRight;
		}

		public BigCardEnchantmentPanel m_EnchantmentPanelPrefab => method_3<BigCardEnchantmentPanel>("m_EnchantmentPanelPrefab");

		public GameObject m_EnchantmentBanner => method_3<GameObject>("m_EnchantmentBanner");

		public GameObject m_EnchantmentBannerBottom => method_3<GameObject>("m_EnchantmentBannerBottom");

		public int m_RenderQueueEnchantmentBanner => method_2<int>("m_RenderQueueEnchantmentBanner");

		public int m_RenderQueueEnchantmentPanel => method_2<int>("m_RenderQueueEnchantmentPanel");

		public LayoutData m_LayoutData => method_3<LayoutData>("m_LayoutData");

		public SecretLayoutData m_SecretLayoutData => method_3<SecretLayoutData>("m_SecretLayoutData");

		public static Vector3 INVISIBLE_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "BigCard", "INVISIBLE_SCALE");

		public Card m_card => method_3<Card>("m_card");

		public Actor m_bigCardActor => method_3<Actor>("m_bigCardActor");

		public List<Actor> m_phoneSecretActors => method_3<Class271<Actor>>("m_phoneSecretActors")?.method_25();

		public float m_initialBannerHeight => method_2<float>("m_initialBannerHeight");

		public Vector3 m_initialBannerScale => method_2<Vector3>("m_initialBannerScale");

		public Vector3 m_initialBannerBottomScale => method_2<Vector3>("m_initialBannerBottomScale");

		public BigCard(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BigCard(IntPtr address)
			: this(address, "BigCard")
		{
		}

		public static BigCard Get()
		{
			return MonoClass.smethod_15<BigCard>(TritonHs.MainAssemblyPath, "", "BigCard", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public Card GetCard()
		{
			return method_14<Card>("GetCard", Array.Empty<object>());
		}

		public void Show(Card card)
		{
			method_8("Show", card);
		}

		public void Hide()
		{
			method_9("Hide", new Class276.Enum20[0]);
		}

		public bool Hide(Card card)
		{
			return method_10<bool>("Hide", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { card });
		}

		public void LoadAndDisplayBigCard()
		{
			method_8("LoadAndDisplayBigCard");
		}

		public void HideBigCard()
		{
			method_8("HideBigCard");
		}

		public void DisplayBigCard()
		{
			method_8("DisplayBigCard");
		}

		public bool ShowBigCardOnRight()
		{
			return method_11<bool>("ShowBigCardOnRight", Array.Empty<object>());
		}

		public bool ShowBigCardOnRightMouse()
		{
			return method_11<bool>("ShowBigCardOnRightMouse", Array.Empty<object>());
		}

		public bool ShowBigCardOnRightTouch()
		{
			return method_11<bool>("ShowBigCardOnRightTouch", Array.Empty<object>());
		}

		public bool ShowKeywordOnRight()
		{
			return method_11<bool>("ShowKeywordOnRight", Array.Empty<object>());
		}

		public void UpdateEnchantments()
		{
			method_8("UpdateEnchantments");
		}

		public void ResetEnchantments()
		{
			method_8("ResetEnchantments");
		}

		public void LayoutEnchantments(GameObject bone)
		{
			method_8("LayoutEnchantments", bone);
		}

		public void FitInsideScreen()
		{
			method_8("FitInsideScreen");
		}

		public bool FitInsideScreenBottom()
		{
			return method_11<bool>("FitInsideScreenBottom", Array.Empty<object>());
		}

		public bool FitInsideScreenTop()
		{
			return method_11<bool>("FitInsideScreenTop", Array.Empty<object>());
		}

		public BigCardEnchantmentPanel CreateEnchantmentPanel(int index)
		{
			return method_14<BigCardEnchantmentPanel>("CreateEnchantmentPanel", new object[1] { index });
		}

		public void DestroyEnchantmentPanel(BigCardEnchantmentPanel panel)
		{
			method_8("DestroyEnchantmentPanel", panel);
		}

		public void LoadAndDisplayTooltipPhoneSecrets()
		{
			method_8("LoadAndDisplayTooltipPhoneSecrets");
		}

		public void HideTooltipPhoneSecrets()
		{
			method_8("HideTooltipPhoneSecrets");
		}

		public Actor LoadPhoneSecret(Card card)
		{
			return method_14<Actor>("LoadPhoneSecret", new object[1] { card });
		}

		public void ShowPhoneSecretDeath(Actor actor)
		{
			method_8("ShowPhoneSecretDeath", actor);
		}

		public void HidePhoneSecret(Actor actor)
		{
			method_8("HidePhoneSecret", actor);
		}

		public void SetupActor(Card card, Actor actor)
		{
			method_8("SetupActor", card, actor);
		}

		public bool ShouldActorUseEntity(Entity entity)
		{
			return method_11<bool>("ShouldActorUseEntity", new object[1] { entity });
		}

		public bool ShouldActorUseEntityDef(Entity entity)
		{
			return method_11<bool>("ShouldActorUseEntityDef", new object[1] { entity });
		}
	}
}
